package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.RoleBean;

import java.util.List;

/**
 * 角色业务接口
 */
public interface IRoleService {
    /**
     * 动态分页查询角色集合
     * @param pageNO 页码
     * @return 分页对象
     */
    IPage<RoleBean>findByItem(Integer pageNO);

    /**
     * 删除角色
     * 1、通过角色id删除用户角色中间表
     * 2、通过角色id删除权限角色中间表
     * 3、通过角色id删除角色
     * @param id 角色id
     */
    void del(Integer id);


    /**
     * 添加角色，同时添加角色拥有的权限集合
     * @param roleBean 新角色
     * @param permission 权限数组
     */
    void add(RoleBean roleBean,Integer[]permission);

    /**
     * 根据角色id查询角色权限
     * @param roleId 角色id
     * @return 权限集合
     */
    RoleBean findById(Integer roleId);

    /**
     * 通过角色id修改用户权限，先删除 该用户所有权限，在添加新的权限
     * @param roleId 角色id
     * @param newArray 新的权限数组
     */
    void update(Integer roleId,Integer[]newArray);

    /**
     * 查询所有角色
     * @return
     */
    List<RoleBean>findAll();

}
